﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace LojaEmDia.Cadastro
{
    public partial class frmProduto : LojaEmDia.Cadastro.frmBase
    {
        List<Negocio.PRODUTO> dsProdutos;
        public frmProduto()
        {
            InitializeComponent();
            dsProdutos = new List<Negocio.PRODUTO>();
            this.bdsDataSet.DataSource = dsProdutos;
            this.dataGridView1.AutoGenerateColumns = false;
            this.dataGridView1.DataSource = this.bdsDataSet;
            this.CarregarCombos();
        }

        private void CarregarCombos()
        {
            this.cboFabricante.DataSource = Negocio.Faced.NegocioFaced.Me.ListarFabricante();
            this.cboFabricante.DisplayMember = "NOM_FABRICANTE";
            this.cboFabricante.ValueMember = "COD_FABRICANTE";
        }


        protected override void OnSave(object sender, EventArgs e)
        {
            try
            {
                this.bdsDataSet.EndEdit();
                if (this.Validar())
                {
                    Negocio.Faced.NegocioFaced.Me.Salvar(this.dsProdutos);
                    base.OnSave(sender, e);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro na operação", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private bool Validar()
        {
            if (string.IsNullOrEmpty(this.txtNome.Text))
            {
                Util.ExibeErro("Informe o nome do produto");
                return false;
            }
            return true;
        }

        protected override void OnPesquisar(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtCampoPesquisa1.Text) )
            {
                Util.ExibeAlerta("Informe o nome para pesquisar.");
                return;
            }
            this.dsProdutos = Negocio.Faced.NegocioFaced.Me.PesquisarProduto(this.txtCampoPesquisa1.Text);
            base.OnPesquisar(sender, e);
            this.bdsDataSet.DataSource = this.dsProdutos;
        }


        protected override void OnNovo(object sender, EventArgs e)
        {

            Negocio.PRODUTO novoRegistro = new Negocio.PRODUTO();
            this.bdsDataSet.Add(novoRegistro);
            this.bdsDataSet.Position = this.bdsDataSet.Count - 1;
            this.tabControl1.SelectedTab = tabCadastro;
            base.OnNovo(sender, e);
        }

        private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                this.tabControl1.SelectedTab = this.tabCadastro;
            }
        }

        private void btnNovoFabricante_Click(object sender, EventArgs e)
        {
            frmFabricante f = new frmFabricante();
            f.ShowDialog();
            this.CarregarCombos();
        }

        private void btnPesquisar_Click(object sender, EventArgs e)
        {

        }
    }
}
